package exercise.基础练习;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * 资源限制
 * 时间限制：1.0s   内存限制：512.0MB
 * 问题描述
 * 　　123321是一个非常特殊的数，它从左边读和从右边读是一样的。
 * 　　输入一个正整数n， 编程求所有这样的五位和六位十进制数，满足各位数字之和等于n 。
 * 输入格式
 * 　　输入一行，包含一个正整数n。
 * 输出格式
 * 　　按从小到大的顺序输出满足条件的整数，每个整数占一行。
 * 样例输入
 * 52
 * 样例输出
 * 899998
 * 989989
 * 998899
 * 数据规模和约定
 * 　　1<=n<=54。
 */
public class B09_特殊回文数_穷举 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int sum = sc.nextInt();
        for (int i = 10000; i <= 999999; i++) {
            if (solution(i, sum)) {
                System.out.println(i);
            }
        }
    }

    private static boolean solution(int number, int sum) {
        int f = number / 100000;//十万位
        int e = number % 100000 / 10000;//万位
        int d = number % 10000 / 1000;//千位
        int c = number % 1000 / 100;//百位
        int b = number % 100 / 10;//十位
        int a = number % 10;//个位
        //五位数
        if (f == 0) {
            return a + b + c + d + e == sum && a == e && b == d;
        }
        //六位数
        else {
            return a + b + c + d + e + f == sum && a == f && b == e && c == d;
        }
    }
}
